package dimensional.traveler.client.services;

import java.util.Collection;

import com.google.gwt.user.client.rpc.AsyncCallback;

import dimensional.traveler.shared.model.Mission;
import dimensional.traveler.shared.model.missionSequence.MissionSequence;

public interface CareerServiceAsync {

	void startNewCareer(String userName, AsyncCallback<MissionSequence> callback);

	void getNewMissions(String userName, AsyncCallback<Collection<Mission>> callback);

	void getReplayableMissions(String userName, AsyncCallback<Collection<Mission>> callback);

	void saveProgress(String userName, String saveGameName, AsyncCallback<Void> callback);

	void loadGame(String userName, String saveGameName, AsyncCallback<Void> asyncCallback);

	void loadLastGame(String userName, AsyncCallback<Void> callback);

	void startMission(String userName, String missionId, AsyncCallback<MissionSequence> callback);

	void setCharacterClassId(String userName, String characterClassId, AsyncCallback<MissionSequence> callback);

	void getNextMissionSequence(String userName, AsyncCallback<MissionSequence> callback);

}
